首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏每个用户仅限创建一个专栏

    PHP 简单的文件kv cache

    之前做一个小东西的时候随手写了下面这样的一个cache函数 [11.5增补]后来加了直接存储而不序列化的参数,之后这个函数就凌乱了,而且糅合读写在一个函数代码可读性也不好,得数参数才知道是读是写,用来存放一些小的信息 ,可以省掉数据库,kv方式,git风格文件存储,简单序列化变量数据写入文件。 使用起来很简单的,原本这个函数只有两个参数,k和v,后来发现如果想要清除某种特定类型的cache的时候拙计,因为都混在一个文件夹里面了,而跟很多kv的东西一样,不能列出来都有哪些k,所以后面加了第一个参数

    87230编辑于 2022-08-16
  • 来自专栏AI工程落地

    TensorRT LLM--Paged KV Cache

    cache在生成阶段,一个常见的优化是为MHA内核提供一个缓存,该缓存包含已经计算的过去K和V元素的值,该缓存被称为KV缓存,TensorRT LLM使用该技术来加速其生成阶段。 请参阅TensorRT-LLM/tensorrt_llm/runtime/kv_cache_manager.py at release/0.5.0 · NVIDIA/TensorRT-LLM (github.com 分页KV缓存(paged attention)出现动机虽然kv cache很重要,但是kv cache所占的空间也确实是大且有浪费的,所以出现了paged attention来解决浪费问题。 kv cache大小取决于seqlen,然而这个东西对于每个batch里面的seq来说是变化的,毕竟不同的人输入不同长度的问题,模型有不同长度的答案回答,kv cache统一按照max seq len来申请 block上,通过把每个seq的kv cache划分为固定大小的physical block,每个block包含了每个句子某几个tokens的一部分kv,允许连续的kv可以不连续分布。

    2.6K60编辑于 2023-11-21
  • 来自专栏AI前沿技术

    KV cache - 高效推理必备技术

    主要围绕问题: 通过梳理大模型推理过程,定位KV cache 发生的阶段,阐述: • 如何的利用KV cache,消除自回归解码阶段的计算冗余? • KV cache 的显存占用,并定量计算使用KV cache 和不使用的计算量变化, • 以及如何的优化KV cache 占用的内存? 2,KV cache 公式推导 2.1 预填充Prefill Stage • KV cache 的产生: 假设用户输入,其序列长度为n,经编码后为,通过以下公式获得KV cache。 3,KV cache 显存占用和计算量 3.1 峰值显存占用 假设输入序列的长度为 s ,输出序列的长度为 t ,以float16来保存KV cacheKV cache的峰值显存占用大小为 : 第一个 比如KV cache 量化,Page Attention 等都是通过减少KV cache的显存占用,最大化一次性批处理数量,进而提高推理的吞吐量。

    52310编辑于 2026-01-13
  • 来自专栏AI工程落地

    大语言模型--KV Cache量化论文

    KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache 论文地址:[2402.02750] KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache (arxiv.org) 谷歌学术被引数:6 研究机构:未知 推荐理由:五星,被huggingface transformers库使用,官方认证 KVQuant: Towards 10 Million Context Length LLM Inference with KV Cache Quantization 论文地址:https://arxiv.org 谷歌学术被引数:9 研究机构:佐治亚理工学院、Intel 主要内容: 1.使用均匀量化将kv cache量化低至四比特 2.使用低秩分解方法减少量化误差 3.使用稀疏矩阵来减少异常值造成的误差 WKVQuant QAQ: Quality Adaptive Quantization for LLM KV Cache 论文地址:https://arxiv.org/abs/2403.04643 谷歌学术被引数:3 研究机构

    1.5K10编辑于 2024-07-18
  • 来自专栏喔家ArchiSelf

    大模型的性能提升:KV-Cache

    为了解决这个问题,KV-Cache(Key Value-Cache)应运而生,它是提升 LLM 推理性能的关键技术之一。 KV-Cache 的核心思想是缓存中间计算结果。 速度与内存的权衡 KV-Cache 的引入显著提升了大型语言模型(LLM)的推理速度。 KV-Cache 实践 KV-Cache 是现代大型语言模型(LLM)推理引擎中至关重要的一项优化技术。 该文通过实验展示了启用 KV-Cache 带来的显著加速效果:在 T4 GPU 上对模型 HuggingFaceTB/SmoLLM2-1.7B 进行测试,使用 KV-Cache 相比不使用时,推理速度提升了 with KV-cache disabled time_without_cache, text_without_cache = generate_and_time(use_cache=False) print

    5.3K41编辑于 2025-06-19
  • 来自专栏深度学习自然语言处理

    每日论文速递 | GEAR:高效 KV Cache 压缩框架

    LLM激活和KV缓存压缩:与权重压缩相比,激活和KV缓存的压缩更具挑战性,因为它们与模型输入更相关且更敏感。 KV缓存剪枝:基于注意力分数分析,一些研究提出了通过丢弃KV缓存中的标记来减少缓存大小的方法。 ., 2023) 提出了基于注意力分数的KV剪枝方法。 KV缓存量化:除了剪枝方法,还有研究探索了KV缓存的量化方法。 GEAR与不同KV量化方案的结合:展示了GEAR在不同KV量化方案(如均匀量化和分组量化)上的应用效果。实验结果表明,GEAR能够显著提高这些量化方案的性能。 相关研究:论文讨论了与GEAR相关的研究领域,包括LLM权重压缩、KV缓存压缩、KV剪枝和量化等。

    1.6K10编辑于 2024-03-25
  • 来自专栏自然语言处理

    图解KV Cache:解锁LLM推理效率的关键

    简单来说,用了KV Cache可以支持更多用户,提高效率 →但是同时也会占用更多内存,以空间换时间。 整体动态图如下: 总结 在Transformer架构中,KV Cache是一种关键的性能优化机制。 KV Cache 作为 Transformer 架构中的关键性能优化机制,通过巧妙的缓存设计显著提升了模型的推理效率。 其次,在上下文处理能力上,KV Cache通过维持完整的长序列表示,确保了模型对上下文的准确理解。 参考资料 LLM 推理加速 - KV Cache LLM 推理优化探微 (2) :Transformer 模型 KV 缓存技术详解 【大模型LLM基础】自回归推理生成的原理以及什么是KV Cache? LLM(二十):漫谈 KV Cache 优化方法,深度理解 StreamingLLM ThreadReaderApp 展开链接 [LLM]KV cache详解 图示,显存,计算量分析,代码 KV Cache

    3.2K12编辑于 2025-03-04
  • 来自专栏机器学习与统计学

    vLLM v0.18.0 更新,KV Cache 迎来大升级

    KV Cache 智能 CPU 卸载 + FlexKV 这一版对 KV Cache 的卸载逻辑做了两个升级。 3.2 FlexKV:新的卸载后端 FlexKV 作为全新的 KV Cache 卸载后端引入,支持更灵活的存储策略(不只是 CPU 内存,还可以扩展到 SSD 等介质) 目前是实验性功能,通过 --kv-transfer-config 这一版为 MLA 的 prefill 阶段引入了 FlashAttention 4(FA4) 内核,同时还有: Triton MLA decode 的 FP8 KV cache 支持 DeepSeek-V3.2 向量化 MLA query concat kernel context parallel 下 FP8 KV cache gather 优化 对于在生产环境跑 DeepSeek V3/V3.2 的用户, 用 Ray 管多节点集群的:升级前先确认 pip install ray 已在你的部署脚本里,否则启动会报找不到 Ray 用 KV Cache CPU offloading 的:升级可以顺手用上智能门控

    2800编辑于 2026-03-27
  • 来自专栏存储公众号:王知鱼

    最近热议的 KV Cache 是如何工作的?

    全文概览 当今,大型语言模型(LLM)的推理正面临严峻挑战,尤其是在自回归模型中,键值(KV)缓存的内存消耗已成为瓶颈。 阅读收获 了解KV缓存外部化对于解决LLM推理瓶颈的关键作用,以及它如何优化上下文长度和并发处理能力。 掌握Pure Storage KVA通过NFS和S3等标准协议实现KV缓存加速的创新方法,及其在企业环境中的应用优势。 01 摘要 大型语言模型(LLM)的推理,特别是自回归模型的推理,正严重受制于键值(KV)缓存的内存消耗瓶颈。 而KV缓存是“热”数据路径,在每个令牌生成周期都会被访问。将KV缓存置于存储之上,极大地提升了存储阵列在整个系统中的战略地位。

    1.2K10编辑于 2025-10-09
  • 来自专栏AI SPPECH

    58: vLLM 核心模块逐文件:kv_cache.py

    作者:HOS(安全风信子) 日期:2026-01-21 来源平台:GitHub 摘要: 本文深入剖析 vLLM 核心缓存模块 kv_cache.py,揭示其在大模型推理中的关键作用。 KVCache 设计难以高效支持 分布式场景下的通信开销:在多 GPU 推理中,KVCache 的同步和通信成为性能瓶颈 多模态场景的适配:多模态模型需要更复杂的 KVCache 管理策略 1.3 vLLM kv_cache.py 的战略意义 vLLM 的 kv_cache.py 模块作为核心组件之一,实现了革命性的 Paged KVCache 技术,有效解决了传统 KVCache 面临的诸多问题。 技术深度拆解与实现分析 3.1 kv_cache.py 整体架构 vLLM 的 kv_cache.py 模块采用了分层架构设计,从高到低依次为: 架构说明: API层负责处理外部缓存请求,提供缓存管理接口 A.2.3 上下文并行配置 from vllm import KVCacheConfig # 创建上下文并行配置 kv_cache_config = KVCacheConfig( num_blocks

    21310编辑于 2026-02-10
  • 来自专栏Se7en的架构笔记

    Prefix Caching 详解:实现 KV Cache 的跨请求高效复用

    Prefix Caching 可以将这些 few-shot 示例的 KV Cache 复用,避免每次都重新计算相同的示例内容。 2 PagedAttention 和 Prefix Caching 的关系 PagedAttention 主要解决 KV Cache 如何在 GPU 显存中“按需分配”,通过分页机制让 KV Cache 维度 PagedAttention Prefix Caching 关注点 高效管理 KV Cache 的内存分配与碎片化 复用请求间公共前缀的 KV Cache,减少重复计算 作用阶段 整个推理过程,包括 Cache 分块(block)动态分配和管理 通过哈希、基数树等结构检测和缓存相同前缀的 KV,跨请求复用 主要作用 解决 KV Cache 占用大、内存碎片严重、动态扩展难等问题,提升显存利用率和吞吐量 调度器为运行中的请求分配 KV Cache block 的流程如下: 调用 kv_cache_manager.allocate_slots():执行以下步骤: 计算当前需要分配的新 block 数量;若可用

    3.5K10编辑于 2025-06-09
  • 来自专栏自然语言处理

    DeepSeek开源周 Day01:从FlashMLA背后原理回顾KV Cache

    研究团队发现现有系统由于缺乏精细的显存管理方法而浪费了 60% 至 80% 的显存,浪费的显存主要来自 KV Cache。因此,有效管理 KV Cache 是一个重大挑战。 什么是KV Cache? 如下图所示,展示了有无 kv cache 的流程: Without KV Cache 每次需要计算全 Wq(X), Wk(X), Wv(X),每次需要计算全量 Attn With KV Cache,第一步计算完整 Attn ,将 KV 保存成 KV\_cache With KV Cache,第二步,取第二步的 Next Token 计算 QKV ,将 [KV\_cache, KV] 联合,计算出 解码中的KV Cache 我们下面用一个例子更加详细的解释什么是KV Cache,了解一些背景的计算问题,以及KV Cache的概念。 则有: kv_cache下标l表示模型层数。

    99810编辑于 2025-02-25
  • 来自专栏深度学习自然语言处理

    每日论文速递 | DMC: 动态内存压缩-在推理时压缩KV Cache

    动态令牌池:Nawrot et al. (2022) 提出了动态令牌池(Dynamic Token Pooling),这是一种在中间层对token表示进行合并的方法,DMC在这一基础上进行了改进,将其应用于KV 与GQA的比较:将DMC与Grouped Query Attention(GQA)进行比较,GQA是一种广泛使用的减少KV缓存大小的方法。

    80910编辑于 2024-03-25
  • 来自专栏DeepHub IMBA

    KV Cache管理架构演进:从连续分配到统一混合内存架构

    先从KV cache本身说起。 背景:Prefill、Decode与KV Cache LLM推理分两个阶段。 KV cache管理重要正是因为这一点。 Era 4:分布式KV Cache(2025+) 模型规模持续增长单GPU甚至单节点已不足以承载。KV cache管理正在变成一个多节点、数据中心级别的问题。 KV Cache感知的负载均衡 NVIDIA Dynamo引入了KV cache感知路由:请求路由器优先把请求转发到已经持有相关KV cache的实例上,在集群层面最大化前缀缓存命中率。 总结 KV cache才是真正的瓶颈,Llama-3–70B在32个并发8K token请求下的KV cache总量超过80GB,比一整块A100的显存还大。

    47011编辑于 2026-03-04
  • 来自专栏GiantPandaCV

    大模型KV Cache节省神器MLA学习笔记(包含推理时的矩阵吸收分析)

    首先,本文回顾了MHA的计算方式以及KV Cache的原理,然后深入到了DeepSeek V2的MLA的原理介绍,同时对MLA节省的KV Cache比例做了详细的计算解读。 我们可以看到目前的官方实现在存储KV Cache的时候并不是存储隐向量,而是把隐向量都解压缩变成了标准的MHA的KV Cache,实际上是完全不能节省显存的。 下来,避免重复计算,这就是KV Cache的由来。 首先,本文回顾了MHA的计算方式以及KV Cache的原理,然后深入到了DeepSeek V2的MLA的原理介绍,同时对MLA节省的KV Cache比例做了详细的计算解读。 我们可以看到目前的官方实现在存储KV Cache的时候并不是存储隐向量,而是把隐向量都解压缩变成了标准的MHA的KV Cache,实际上是完全不能节省显存的。

    3.8K21编辑于 2024-06-18
  • 来自专栏roseduan写字的地方

    实现分布式 kv—1 Standalone KV

    旨在实现一个简易的分布式 kv,其中很多代码框架它已经提供了,我们只需要填充具体的逻辑即可。 这个课程分为了 4 个 Project: Standlone KV Raft KV Multi Raft KV Transaction 分别需要实现单机版 kv、基于 raft(和 multi raft ) 一致性算法的 kv、具有分布式事务的 kv,除了第一个 standalone kv 没有什么难度之外,其他的几个 Project 都非常的有挑战,涉及到手写 raft 算法以及分布式事务。 第一个 Project 是集成 Badger,实现一个简易的单机版 kv。 具体的实现,在 kv/storage/standalone_storage/standalone_storage.go 中,需要封装一下 Badger,然后实现 storage 接口中定义的几个方法。

    1.1K20发布于 2021-11-30
  • 来自专栏DeepHub IMBA

    vLLM 吞吐量优化实战:10个KV-Cache调优方法让tokenssec翻倍

    问题多半出在 KV-cache 上。本文整理了 10 个实际可用的优化方向,都是能直接上生产环境的那种。 1、给 cache 足够的内存空间 vLLM 启动时会预分配一大块 VRAM 给 KV-cache 用。如果分配得太保守,批处理规模会急剧下降,吞吐量也跟着崩。 (需要硬件得支持) 注意这里量化的是 KV-cache 本身,不是模型权重。 --kv-cache-dtype fp8 (或者 fp8_e4m3、fp8_e5m2) 但这里有几个坑:FP8 支持强依赖硬件和后端实现。 新版 vLLM 的 混合 KV-cache 管理器 能协调 SW 层和全注意力层,让缓存命中逻辑在不同层之间保持一致。结果就是 KV 工作集更小、访问更热,长对话场景下的持续吞吐会稳定很多。

    1.4K10编辑于 2025-11-15
  • 来自专栏GiantPandaCV

    GQA,MLA之外的另一种KV Cache压缩方式:动态内存压缩(DMC)

    对于标记为1的token的KV Cache可以累加到上一个标记为1的token的KV Cache上(需要这两个token连续才可以累加),而不是concat,这样就可以高效压缩KV Cache,效果也是不错的 减少 KV Cache的大小可以降低延迟并提高 GPU 利用率。DMC 是一种简单且廉价的在线压缩 KV Cache的方法。 在普通 Transformer 中,在每个时间步 , 和 都会被追加到 KV Cache中。另一方面,在 DMC 中,KV Cache更新过程有所不同,如算法 1 所示。 为了说明这个问题,请考虑上图2中DMC推理期间的KV Cache示例,决策分数序列为(为简明起见,已省略重要性分数)。KV Cache的最后一个元素在每个时间步都会发生变化。 为了在训练期间正确模拟推理时间KV Cache的演变,保留所有展开的中间KV Cache项。 论文使用基于值序列的加性掩码来修改方程(4)中的注意力分数,如上图3所示。

    72110编辑于 2024-06-18
  • 来自专栏算法之美

    Talent Plan KV训练营Standalone KV实验

    从零开始写KV数据库 微信界面不美观 可以直接访问 https://www.yuque.com/docs/share/33170a24-f9fa-4a90-b021-92acc7b0abfc? TinyKV 是PingCAP公司推出的一套开源分布式KV存储实战课程:https://github.com/tidb-incubator/tinykv, 宗旨实现一个简易的分布式 kv 这课程一共包含了 是集成 Badger,实现一个简易的单机版 kv。 /kv/server -run 1 make project1 GO111MODULE=on go test -v --count=1 --parallel=1 -p=1 . /kv/server -run 1 第四步:我的疑问 问:实验1 TestRawGetAfterRawPut1,通一个key,插入不同记录,但是在查询时候。结果不正确了。

    1.3K10编辑于 2022-01-17
  • 来自专栏机器之心

    不止于量化:最新综述用「时-空-构」三维视角解构KV Cache系统级优化

    随着 LLM 向 1M 上下文演进,KV cache(键值缓存)已成为制约推理服务效率的核心瓶颈。 自回归生成的特性使得模型必须存储历史 token 的 key-value 状态(即 KV cache)以避免重复计算,但 KV cache 的显存占用随着上下文长度的增长而膨胀,带来显著的内存瓶颈。 过去两年,关于 KV cache 的优化工作爆炸式增长,包括调度、迁移、压缩等策略层出不穷。 从「系统行为」看 KV Cache 聚焦于 sKis,该综述创新性地提出以系统行为的视角来组织 KV cache 优化技术:不是按具体流程、框架、算法来划分,而是按优化策略在系统中发生的时间、空间、结构三个维度的行为来划分 KV 编排(CDO)、KV cache 压缩(KVCC)、KV cache 留存管理(KVRM)。

    17710编辑于 2026-01-22
领券